home *** CD-ROM | disk | FTP | other *** search
- #ifndef ConsLaw_h_IS_INCLUDED
- #define ConsLaw_h_IS_INCLUDED
- #include <FieldFD.h>
- #include <TimePrm.h>
- #include <FieldFunc.h>
- #include <schemes.h> // for size of Handle(HCLSchemes)
- #include <func.h> // initial conditions and flux functions
- class MenuSystem;
-
- class ConsLaw
- {
- public:
- Handle(GridLattice) grid; // lattice grid (here: 1D grid)
- Handle(FieldFD) u; // solution at time step n+1
- Handle(FieldFD) u_prev; // solution at time step n
- Handle(FieldFD) p; // coefficient in the equation
- real p_value; // type of mean value of p-field
- TimePrm tip; // time integration parameters (delta t etc.)
- SetOfNo(real) time_points_for_plot; // time points for making plots
- CurvPlotFile file; // for plotting results
- String scheme_tp; // (class) name of scheme
- Handle(HCLSchemes) scheme; // numerical scheme (functor)
- String flux_tp; // (class) name of flux functor
- Handle(FluxFunc) flux; // flux function (functor)
- String u0_tp; // (class) name of u0 functor
- Handle(FieldFunc) u0; // initial function (functor)
- real uL; // u(0,t) boundary condition
-
- ConsLaw ();
- ~ConsLaw () {}
-
- void solveProblem ();
- void define (MenuSystem& menu, int level = MAIN);
- void scan (MenuSystem& menu);
- void adm (MenuSystem& menu);
- BooLean ok () const;
-
- protected:
- void setIC ();
- void timeLoop ();
- void solveAtThisTimeLevel ();
- void saveResults ();
- void updateDataStructures ();
- };
- #endif
-